package com.ipt.frm.pw;

import java.io.IOException;
import java.util.Properties;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.ipt.frm.bean.Mensaje;
import com.ipt.frm.enumeracion.TipoMensaje;

/**
 * Servlet implementation class ServletMaestro
 */
public class MasterServlet extends HttpServlet {
	private static final long serialVersionUID = 745913084061960343L;
	// TODO tiene que estar en un unico sitio
	static final String INIT_PARAM_USER_NAME = "username";
	static Properties propertiesMsg;
	static final String PATH_PROPERTIES_MSG = "/WEB-INF/config/messages.properties";

	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		super.init(config);

		propertiesMsg = new Properties();

		// propertiesMsg.load(getServletContext().getResourceAsStream(PATH_PROPERTIES_MSG));
		propertiesMsg = (Properties) getServletContext().getAttribute(
				"properties");
	}

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public MasterServlet() {
		super();
	}

	@Override
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		RequestDispatcher dispatcher = null;
		HttpSession session = request.getSession();
		Mensaje mensaje;

		// Comprobar si el usuario a iniciado sesion
		if (session.getAttribute(INIT_PARAM_USER_NAME) == null) {
			// mensaje = new Mensaje(TipoMensaje.ERROR,
			// "Debe loggearse para usar la AppWeb");
			mensaje = new Mensaje(TipoMensaje.ALERT,
					propertiesMsg.getProperty("servlet.Masterno.user"));
			dispatcher = this.getServletContext().getRequestDispatcher(
					"/login.jsp");
			// msg error
			// TODO meter estos literales en un fichero .properties
			request.setAttribute("MSG", mensaje);
			dispatcher.forward(request, response);
		} else {
			super.service(request, response);
		}

	}

	@Override
	public void destroy() {
		super.destroy();
		propertiesMsg = null;
	}
}
